package com.shujia.day06.homework;

public class H6FindIndex {
    public static void main(String[] args) {
        int[] arr = {3, 12, 24, 36, 55, 68, 75, 88};
        int findNum = 2;

        // 下标位置定义
        int front = 0;
        int end = arr.length - 1;

        System.out.println(searchIndex(arr,findNum,front,end));

    }

    // 对于一个方法，如果有返回值，那么在方法内部，所有返回值的条件必须完整都有返回值
    public static int searchIndex(int[] arr,int findNum,int front,int end){
        // 判断时需要给定一个停止标记
        // 不存在数据则，不继续调用自身，也就是推出递归迭代
        if(front > end){
            return -1;
        }
        // 判断方式二：
//        if(findNum < arr[front] | findNum > arr[end]){
//            return -1;
//        }

        // 寻找中间值
        int mid = (front + end) / 2;

        if(findNum < arr[mid]){
            // 继续迭代递归
           return searchIndex(arr,findNum,front,mid-1);

        } else if (findNum > arr[mid]) {
            // 继续迭代递归
           return searchIndex(arr,findNum,mid+1,end);
        }else{
            // 等于那么就找到对应的下标位置了
            return mid;
        }

    }


}
